iT邦幫忙

2025 iThome 鐵人賽

DAY 1
0
生成式 AI

GenAI 與人機協作下的遺留系統重構實戰|以占星軟體 Moira 為例系列 第 1

Day 01|遺留系統技術重構實戰:建立重構藍圖與 AI 協作策略

  • 分享至 

  • xImage
  •  

在這個專案中,我將與實際使用七政四餘星盤的占星學家合作,由占星學家提供業務需求與驗證結果,協助我理解占星邏輯與資料結構。
值得一提的是,我本人並不具備天文學或占星相關背景,而占星學家也完全不熟悉程式設計與系統架構。
這樣的設定,反而極為接近實務專案的典型場景 —— 需求方與工程實作者之間存在知識斷層,需要透過結構化的語意轉譯與技術重構來銜接。

本系列記錄的,就是如何在這樣的條件下,運用 GenAI(Claude Code CLI)協作,加上明確的人機責任框架,將一套完全斷裂、無版本控制、無文件的 Java 占星桌面系統 Moira,重構為模組化的 Python Web 應用。


🔍 1. 遺留系統分析:Moira 結構掃描與責任區劃定

✅ Java 探勘目標

  • 明確主程式進入點與流程:確認 Moira.java 為主入口
  • 分析模組依賴與邊界:確認三層核心邏輯
    1. 天文計算:org.athomeprojects.swisseph
    2. 星盤與資料結構:ChartData, DataSet
    3. GUI 與使用者互動:SWT → 將棄用

🤖 Claude 協作摘要

AI 任務設定:
- 提取主要類別與呼叫鏈
- 分析每個 Java package 的責任分工
- 標註已廢棄 GUI 組件與可重構模組

AI 輸出結果:
- 成功定位五大類別與使用邏輯
- 根據變數命名推測占星學邏輯(如星體座標、天干地支資料)
- 協助我用語意方式重建物件責任圖

🧱 2. Python 架構初始化:架構轉譯與模組化規劃

🌐 重構方向轉換

  • Java desktop 應用(Eclipse SWT) → Django Web 應用
  • Swing/SWT GUI → 廢棄,將以 Web API + 星盤前端圖形庫取代
  • Java 底層天文庫(SwissEph) → 改用 pyephem、skyfield、astropy 等 Python 庫

📁 建立 Django 專案骨架

moira_python/
├── config/                  # 設定模組(Django 設定、環境變數)
├── apps/
│   ├── users/              # 使用者模組
│   ├── astrology/          # 占星邏輯(七政四餘、紫微、擇日)
│   ├── charts/             # 星盤資料模型(ChartData)
│   └── calculations/       # 天文計算整合(ephem, skyfield)
├── requirements/           # 套件與環境需求
└── docker-compose.yml      # 開發用 Docker 配置

🤖 Claude 協作摘要

AI 任務設定:
- 依據原始 Java 模組,規劃 Python 架構對應分工
- 協助我設計 apps 資料夾內模組劃分與名稱標準化

AI 輸出結果:
- 生成對應架構草圖(含模組說明)
- 建議將 GUI 職責獨立抽離,將天文計算與占星解釋分層
- 提供 Docker 初始設計與 .env 管理方式建議

🧮 3. 建構模組對應表(Java ↔ Python)

Java 類別/模組 Python 模組 責任
org.athomeprojects.swisseph apps.calculations 天文計算邏輯整合
org.athomeprojects.base.ChartData apps.charts.models 星盤資料結構與資料物件
org.athomeprojects.moira apps.astrology 占星邏輯(盤型、解盤)
SWT GUI (前端待重構) 使用者互動與可視化介面

🧠 Day 01 總結:技術重構即是責任拆解

本日完成:

  • ✅ 遺留 Java 結構與核心邏輯完整梳理
  • ✅ Django 架構規劃與專案初始化
  • ✅ 人機協作流程啟動並導入 Agent Framework 控管語境與行為
  • ✅ 模組對應表初步成形,劃定後續資料模型重構邊界

Claude 在今日任務中主要協助我完成「語境還原、模組劃分、技術替換規劃」三項任務,展現高度結構理解力。

明日,我將正式進入核心資料模型 ChartData 的轉換與 Python 類別重建,AI 的推論邏輯與型別補全能力將再次被實戰驗證。


下一篇
Day 02|ChartData 模型轉譯與資料結構還原
系列文
GenAI 與人機協作下的遺留系統重構實戰|以占星軟體 Moira 為例7
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言